package com.software.car.api;

import com.software.car.common.utils.CommonPage;
import com.software.car.entity.dto.InsertModelDto;
import com.software.car.entity.vo.ModelOptionVo;
import com.software.car.entity.vo.ModelVo;
import com.software.car.entity.vo.ModelSimpleVo;

import java.util.List;

/**
 *
 * 模块API
 *
 * @Author 魔法はまだ解けない
 * @Date 2021/2/3
 */
public interface ModelService {

    /**
     * 添加活动前初始化
     * @param modelDto
     * @return
     */
    InsertModelDto addInit(InsertModelDto modelDto);

    /**
     * 修改活动前初始化
     * 我们需要保留创建日期、人、模板id
     * 选项的id
     *
     * @param modelDto
     * @return
     */
    InsertModelDto updateInit(InsertModelDto modelDto);

    /**
     * 添加模块
     * @param modelDto
     * @return
     */
    String addModel(InsertModelDto modelDto);

    /**
     * 修改模板信息
     * @param modelDto
     * @return
     */
    String updateModel(InsertModelDto modelDto);

    /**
     *  分页处理模板列表
     * @param state
     * @param type
     * @param page
     * @param pageSize
     * @return
     */
    CommonPage getSimpleModel(Integer state,Integer type,Integer page,Integer pageSize,String name);

    /**
     * 通过模板id获取模板及选项信息
     * @param modelId
     * @return
     */
    ModelVo getModel(String modelId,Integer state);

    /**
     *  获取简易模板列表
     * @param state
     * @param type
     * @return
     */
    List<ModelSimpleVo> getSimpleModel(Integer state, Integer type, String name);

    /**
     * 修改模块状态
     * @param modelId
     * @param state
     * @return
     */
    int updateModel(String modelId,Integer state,String updateId);

    /**
     * 修改模块状态
     * @param modelId
     * @return
     */
    int deleteModel(String modelId);


}
